package com.xinke.edu.mypetadoption.fragment.Mine;

import android.content.Intent;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.xinke.edu.mypetadoption.Activity.ChangePassword;
import com.xinke.edu.mypetadoption.Activity.Login_Activity;
import com.xinke.edu.mypetadoption.Activity.MyOrder;
import com.xinke.edu.mypetadoption.Activity.ShoppingCart;
import com.xinke.edu.mypetadoption.databinding.FragmentMineBinding;
import com.xinke.edu.mypetadoption.util.SPUtils;

/**
 * 个人中心Fragment
 * 负责展示用户相关功能入口，包括我的订单、购物车、修改密码和退出登录等功能
 */

public class MineFragment extends Fragment {
    // 视图绑定对象，用于访问Fragment的UI组件
    FragmentMineBinding binding;

    /**
     * 创建Fragment视图
     * @param inflater 布局填充器，用于将XML布局转换为View对象
     * @param container 父容器
     * @param savedInstanceState 保存的状态数据
     * @return 返回Fragment的根视图
     */
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container , @Nullable Bundle savedInstanceState){
        binding = FragmentMineBinding.inflate(inflater);
        return binding.getRoot();
    }

    /**
     * 视图创建完成后的回调方法
     * 初始化用户信息、设置功能入口的点击事件
     */
    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState){
        super.onViewCreated(view, savedInstanceState);
        initListener();
    }



    /**
     * 初始化所有UI元素的点击事件监听器
     */
    public void initListener(){
        // 设置"我的订单"区域的点击事件（XML ID: MyOrder - 订单功能入口区域）
        binding.MyOrder.setOnClickListener(v ->{
            if (getActivity() != null){
                // 创建跳转到我的订单页面的Intent
                Intent intent = new Intent(getActivity(), MyOrder.class);
                // 启动我的订单页面
                startActivity(intent);
            }
        });

        // 设置"购物车"区域的点击事件（XML ID: ShoppingCart - 购物车功能入口区域）
        binding.ShoppingCart.setOnClickListener(v ->{
            if (getActivity() != null){
                // 创建跳转到购物车页面的Intent
                Intent intent = new Intent(getActivity(), ShoppingCart.class);
                // 启动购物车页面
                startActivity(intent);
            }
        });

        // 设置"修改密码"区域的点击事件（XML ID: ChangePassword - 修改密码功能入口区域）
        binding.ChangePassword.setOnClickListener(v ->{
            if (getActivity() != null){
                // 获取当前用户ID并转换为int类型
                // 直接获取int类型的用户ID，无需类型转换
                int userId = SPUtils.getInstance(getActivity()).getInt("userId", 0);
                Intent intent = new Intent(getActivity(), ChangePassword.class);
                // 传递用户ID到ChangePassword
                intent.putExtra("userId", userId);
                startActivity(intent);
            }
        });

        // 设置"退出登录"区域的点击事件（XML ID: LogOut - 退出登录功能入口区域）
        binding.LogOut.setOnClickListener(v ->{
            if (getActivity() != null){
                //跳回登录界面
                Intent intent = new Intent(getActivity(), Login_Activity.class);
                //清除当前activity的所有页面，避免点击返回出现其他页面
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                //关闭fragment
                getActivity().finish();
            }
        });

    }






    /**
     * Fragment视图销毁时调用
     * 释放视图绑定资源，避免内存泄漏
     */
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        // 释放Binding，避免内存泄漏
        binding = null;
    }
}